package facilius.controller.action.material;

import facilius.model.ServiceLocator;
import facilius.model.pojo.Aula;
import facilius.model.pojo.Material;
import java.io.File;
import org.apache.commons.fileupload.FileItem;
import org.mentawai.core.BaseAction;

/**
 *
 * @author Graciano
 */
public class MaterialCreateAction extends BaseAction {

    @Override
    public String execute() throws Exception {
        String consequence = ERROR;
        try {

            Long aulaId = input.getLong("aulaId");
            Aula aula = ServiceLocator.getAulaService().readById(aulaId);

            int nAnexos = 15;

            for (int i = 0; i < nAnexos; i++) {
                FileItem item = (FileItem) input.getValue("anexo" + i);

                if (item != null) {
                    String nome = item.getName();
                    byte[] bytesDoArquivo = item.get();
                    if (nome != null && !nome.isEmpty()) {
                        if (bytesDoArquivo != null && bytesDoArquivo.length > 0) {
                            String path = org.mentawai.core.ApplicationManager.getRealPath() + "//WEB-INF//files//" + aula.getId();
                            File diretorio = new File(path);
                            if (!diretorio.exists())
                                diretorio.mkdirs();

                            path += "//" + nome;
                            item.write(new File(path));

                            Material material = new Material();
                            material.setAula(aula);
                            material.setNome(nome);
                            material.setDescricao(item.getContentType());
                            ServiceLocator.getMaterialService().create(material);
                        }
                    }
                }
            }
            consequence = SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return consequence;
    }
}
